The present invention relates to a spool file modifying device which is used to modify a spool file for printing to create a new spool file, and more particularly to a spool file modifying device provided in a print server that receives a spool file created by an external apparatus, and modifies the received spool file to create a modified spool file for a modified print job.
Conventionally, a network printing system has been known and widely employed. An exemplary network system typically includes a plurality of personal computers (hereinafter occasionally referred to as PCs) interconnected through a network, and a printer connected to one of the interconnected PCs. The printer functions as a shared printer which can be used by any PC connected with the network.
FIG. 7 shows an exemplary configuration of the conventional network printing system 700. The network printing system 700 includes a server PC 72 to which a printer 73 is connected, and a client PC 71. The server PC 73 and the client PC 71 is connected through a network 74. It should be noted that, although only one client PC 71 is shown in FIG. 7, a plurality of client PC having the similar configuration as the client PC 71 shown in FIG. 7 are interconnected through the network 74.
The server PC 72 is capable of outputting print data to the printer 73 to have the printer 73 perform print jobs. Further, any one of the client PCs 71 on the network 74 is capable of having the printer 73 perform print jobs through the network 74 and the print server PC 72. That is, the printer 73 is used as a shared printer for the network printing system 700.
FIG. 8 illustrates data flow of the printing system 700 when the client PC 71 outputs a print request to the printer 73. For the describing purpose, it is assumed that each of the client PC 71 and the server PC 72 employs “Windows 95” (trademark), which is provided by Microsoft Corporation, as its operating system.
When the client PC 71 is operated by a user, and a request for a print job is output by an application 81 running on the client PC 71, the request (print request) is transmitted to a GDI (Graphic Device Interface) 82, which is a program module provided by the client OS, through a printer driver of the client OS.
The GDI 82 generates a DC (Device Context) which is a virtual display area or a virtual device. The DC is provided for the use of the application 81. When the DC is provided, the application 81 performs an imaging procedure to write an image in the DC at coordinates thereof, thereby an EMF (Enhanced Meta File), which is an intermediate file independent of kind of a printer, is created for each printing page.
A plurality of intermediate files for respective pages are combined into a spool file, which corresponds to one print job. The thus created spool file is transmitted to the server PC 72 through the network 74. In the server PC 72, a spooler system 85, which is a part of function of the server OS, receives the spool file and temporarily stores (i.e., spools) the received spool file in a storage device. Then, a print processor 86 retrieves the spool file stored in the storage device, and transmits the same to the GDI (printer driver) 87, which converts the received spool file into data having printer control codes suitable to the target printer 73 connected to the server PC 72, and transmits the converted data for printing.
When the spool file including the EMFs (Enhanced Meta Files) is transmitted from the client PC 71 to the server PC 72, font data which is used for performing the print job created by the client PC 71 will not generally be transmitted to the server PC 72. That is, only information identifying the font to be used in the print job is transmitted. Thus, the server PC 72 generally converts the spool file into the printer control codes, using the font data pre-installed in the server PC 72.
With the above configuration, as far as the server PC 72 includes the font data identified by the font information included in the spool file transmitted from the client PC 71, the print job created by the client PC 71 is correctly performed by the printer 73. However, if the font data used for creating the print job in the client PC 71 is not provided in the server PC 72, the print job is not performed correctly.
Recently, operating systems have been improved, and an operating system that transmits a spool file with the font data attached has been developed. An typical example of such an OS is “Windows 2000” (trademark of Microsoft Corporation).
If the client OS and the server OS in FIG. 8 are “window 2000”, and if the font data to be used for the print job created by the client PC 71 is not installed in the server PC 72, the font data is attached to the spool file (specifically, the font data is attached to the EMF of each page) when transmitted from the client PC 71 to the server PC 72. In such a system, therefore, when print Jobs are created in the client PC 71 using applications 81, it is unnecessary to mind whether the font data is installed in the server PC 72, and the print job is always performed as desired (i.e., the font data used in the client PC 71 is used for printing even if the server PC 72 does not have the font).
In the meantime, recently, there is a need for performing modified printing jobs. The modified print jobs include, for example, a printing in a multi-page format with which a document is printed such that a plurality of pages are reduced and incorporated within one page of printed document. Another requirement is that two different images are printed overlaid (e.g., printing of watermark). Further, an order of a plurality of pages to be printed is sometimes required to be changed.
The modified print job is typically created by the application 81. However, it can also be done by modifying a spool file which has been output by the application 81 to perform an ordinary print job. An example of a device that processes the spool file to modify the print job is disclosed in Japanese Patent Provisional Publication No. HEI 11-219265.
In the case shown in FIG. 8, for example, when the modified print job is to be performed, a spool file stored by the spooler system 85 is retrieved via the print processor 86. Next, the retrieved spool file is divided into intermediate files for respective printing pages. Then, the page-divided intermediate files are processed (modified) to create a new spool file, or a modified spool file, which is returned to the spooler system 85. Then, the GDI 87 converts the modified spool file into print data suitable to the printer 73.
Depending on the OS, however, when an original spool file is processed to create a modified spool file as described above, the font data incorporated in the original spool file cannot be used when the modified spool file is converted into the printer control codes (i.e., print data) by the GDI 87.
A typical example of such an OS is “Windows 2000”. As mentioned above, when both the client OS and the server OS are “Windows 2000”, and a spool file output by the client PC 71 is used as it is in the server PC 72 for printing, even if font data which is not installed in the server PC 72 is used in the client PC 71 when the print job is created, the font data is incorporated in the spool file transmitted from the client PC 71 to the server PC 72, and a desired print result is obtained using the transmitted font data.
However, if the spool file transmitted to the server PC 72 is processed to create another spool file for creating a modified print job, the font data included in the original spool file is no more usable. Therefore, since the server PC 72 does not have the font data, the print job should be performed without using the desired font data, which results in an undesired print result.